﻿using AutoMapper;
using QuanLyGiaoVuDAL.DTO;
using System;
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations;
using System.Linq;
using System.Web;

namespace QuanLyGiaoVuUI.Models.SinhVien
{
    public class SinhVienViewModel
    {
        public System.Guid ID { get; set; }
        public String MaSinhVien { get; set; }
        public String HoTenSV { get; set; }
        public int GioiTinh { get; set; }
        public DateTime NgaySinh { get; set; }
        public String QueQuan { get; set; }
        public String DiaChi { get; set; }
        public String Email { get; set; }
        public System.Guid MaLop { get; set; }
        public bool DuDKLuanVan { get; set; }
        public int LopTruong { get; set; }


        public SinhVienDTO TosinhVienDTO()
        {
            Mapper.CreateMap(typeof(SinhVienViewModel), typeof(SinhVienDTO));
            var sinhVienDTO = new SinhVienDTO();
            Mapper.Map(this, sinhVienDTO);
            return sinhVienDTO;
        }

        public static SinhVienViewModel FromSinhVienDTO(SinhVienDTO sinhVienDTO)
        {
            Mapper.CreateMap(typeof(SinhVienDTO), typeof(SinhVienViewModel));
            var sinhVienViewModel = new SinhVienViewModel();
            Mapper.Map(sinhVienDTO, sinhVienViewModel);
            return sinhVienViewModel;
        }

        public static IEnumerable<SinhVienViewModel> FromSinhVienDTOList(IEnumerable<SinhVienDTO> sinhVienDTOList)
        {
            var dsSinhVien = new List<SinhVienViewModel>();
            foreach (SinhVienDTO sinhVien in sinhVienDTOList)
            {
                SinhVienViewModel sinhVienViewModel = SinhVienViewModel.FromSinhVienDTO(sinhVien);
                dsSinhVien.Add(sinhVienViewModel);
            }
            return dsSinhVien;
        }
    }
}